x86-64 linux: call evtchn_do_upcall on irq stack and adjust irqcount
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Wed, 8 Feb 2006 15:31:38 +0000 (15:31 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Wed, 8 Feb 2006 15:31:38 +0000 (15:31 +0000)
commitba4485632de1d93d8aa9a2e84135a8e9373d6268
tree07b6cee3b89488ac2a1de237d520e0b313a7a81e
parentaaf087246484df8d659c8225f768d31264ccb3c8
x86-64 linux: call evtchn_do_upcall on irq stack and adjust irqcount
Especially in the light of the recent no-idle-tick preparations in
native x86-64 it is important that exit_idle() has proper state
available.  For this reason, the processor's irqcount must be adjusted
within upcalls, and for consistency and similarity with native code
this call should also execute on the processor's irq stack.
At once the patch slightly simplifies the pre-existing code by copying
%rdi into %rsp instead of adding 8 to %rsp, and by using %rdi instead
of %rsp (avoiding a needless resource dependency) for storing the event
mask.

From: Jan Beulich <JBeulich@novell.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
linux-2.6-xen-sparse/arch/x86_64/kernel/entry-xen.S